Autonomic computer configuration based on location

ABSTRACT

A system and apparatus for noticing and creating relational settings, actions, profiles, and tasks by tying resources to a location based on user behavior.

FIELD OF THE INVENTION

The present invention relates to autonomically configuring computerssuch as portable computers based on the location in which they happen tobe.

BACKGROUND OF THE INVENTION

Users of portable computers are often performing configurations andactivities multiple times based on their location (network). Some ofthese activities can be repetitive for the user, and others the user maynot be aware of. For example, a user might bring her laptop to work andhave to configure it to print to a printer on the work network, and thenhave to reconfigure the computer when she brings it home to print on aprinter in the home network. Indeed, a user's behavior may be differenton the computer when in a conference room instead of at her desk. Thisis but one example of the configuration chores that can be entailedevery time a user moves her computer to a new location or network,reducing the ease of portability.

SUMMARY OF THE INVENTION

A method determines a location of a portable computer and dynamicallyestablishes a configuration of the portable computer based on thelocation.

The location can be determined using global positioning satellite (GPS)or based on detecting a local network with which the portable computercommunicates. Additionally, the location can be determined usingpersonal area network (such as but not limited to Bluetooth)connectivity information.

Individual executable programs can be allowed or disallowed networkaccess based on the location of the portable computer. A Bluetoothprofile can be used to disallow a network access to at least one programexecutable by the portable computer.

The configuration includes one or more of: launching a web browsersopening a specific web page, launching an email program, launching aninstant messenger program, launching a virtual private network,launching a word processing application, opening a specific document,switching default web browser, switching default printer, switching atleast one application association, setting a screen resolution, settingautoplay for disks, establishing a power management setting, audiosettings such as volume and default audio device, extending or mirroringthe screen, changing background/screensaver, activating or deactivatingwireless communication capability.

In another aspect, an apparatus includes a digital processor, and acomputer storage medium associated with the processor. The processorcorrelates a location of the apparatus to one or more configurations ofthe apparatus and establishes the one or more configurations on theapparatus.

In another aspect, a computer readable storage medium is executable by adigital processor to receive a location of a portable computer,correlate the location to at least one setting/task of the computer, anddynamically establish the setting/task based on the correlate act.

The details of the present invention, both as to its structure andoperation, can best be understood in reference to the accompanyingdrawings, in which like reference numerals refer to like parts, and inwhich:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a non-limiting system in accordance withpresent principles;

FIG. 2 is a flow chart of the overall logic;

FIG. 3 is a flow chart of non-limiting logic that may be implemented bythe present invention; and

FIG. 4 is a flow chart of additional non-limiting logic that may beimplemented by the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring initially to FIG. 1, a system is shown, generally designated10, which includes a user computer 12, typically a portable computersuch as but not limited to a laptop computer. The computer 12 includes aprocessor 14 receiving input from one or more input devices such as akeypad 16 and pointing and clicking element 18 that may be embodied as ajoystick with click pads as shown. The processor 14 may also receiveinput from a global positioning satellite (GPS) system 19.

The processor 14 may output information to an output device such as butnot limited to a computer monitor 20 or a printer or a network server 22over a wired or wireless network path 24. The processor 14 may access acomputer readable storage medium 26 that may be embodied as solid statememory, e.g., random access memory (RAM), read-only memory (ROM), flashmemory, etc. and/or as disk-based memory, removable or permanentlyinstalled in the computer. The medium 26 may store logic that can beexecuted by the processor 14 in accordance with principles herein. Ingeneral, the logic of FIGS. 2-4, which are shown in non-limiting flowchart format for ease of exposition without precluding, e.g., statelogic, may be stored on one more of the computer readable mediadisclosed herein for execution by one or more of the processors.

Thus, the network server 22 may include a server processor 28 and servercomputer readable medium 30. The server 22 may communicate with deviceson the network other than the computer 12. For instance, the server 22may communicate with a network device 32 that has a device processor 34and device storage medium 36.

In overall operation, referring to FIG. 2 the location of the computer12 is determined at block 38 in accordance with principles set forthfurther below. The location is correlated to one or more settings/tasks(collectively, “configuration”) at block 40, and then the configurationis dynamically established as appropriate for the location at block 42.

FIGS. 3 and 4 show non-limiting implementation details. It is to beunderstood that the location of the computer can be determined based onthe network and devices to which it is connected, its geographiclocation as indicated by a global positioning satellite system (GPS),and/or by other networks and devices that are detected nearby thecomputer 12. Other means for determining location may include time ofday (inferring that in the morning the computer 12 must be located at,e.g., an office), a light sensor (inferring that, e.g., under darkconditions the computer 12 must be located at home), camera information(comparing images currently being taken with a database of images thatare correlated to locations), which user is logged in (inferring thatif, e.g., a parent is logged on the computer 12 is located at a worklocation), and whether AC power is available (inferring that, forinstance, if no AC power is available the computer 12 is not at home orin the office but rather at a roving location, such as an airport).Other heuristics can be used, such as inferring location based on whichwired or wireless peripheral devices are communicating with the portablecomputer.

In general, the system “starts” a location-based configuration on thecomputer 12 based on what network the computer 12 is connected to. Overtime, additional devices and network information are detected. Fordevices and networks that are repeatedly detected, a location“fingerprint” is created.

The location-specific configuration determines how devices connect toeach other. They may always connect regardless of location or neverconnect, or may connect in only predetermined locations.

Additionally, certain actions are executed when devices are connected.For example, based on the network to which the computer 12 is connected,an antivirus application may always be run on the medium 26, and/or themonitor 20 may always be locked upon connection to a storage.

Further, certain actions may be executed when the computer 12 is in acertain location. For example, a power management regime may beimplemented to maximize battery life if the computer is sensed as beingconnected to a wireless local area network (LAN). The default printercan change based on what network the computer 12 is detected to be in.Certain applications such as, e.g., system updates orperformance-decreasing applications might be prevented from running atcertain locations, e.g., at work. Ambient light settings can change.

In some implementations, only storage devices on the network thatcontain appropriate security key information are allowed to connect tothe computer 12. In other implementations only devices with encrypteddata are allowed to connect in certain locations.

Device autorun settings can change based on location. For example,inserted DVDs may never be autonomically played in some locations, e.g.,at work, whereas at a home location, autoplay of DVDs may always beenabled.

A user can manually define a configuration for each location in a listof locations. However, as envisioned herein the computer 12 can “learn”preferred configurations based on location over time.

Accordingly, commencing at block 44 of FIG. 3, assume the computer 12 isdetected as being connected to a network. At state 46, the user is asked(by means of, e.g., a question presented on the monitor 20) whether theywant this to be designated as a “location”. The user inputs the choiceat decision diamond 48, and if the answer is no the logic ends at state50.

Otherwise, the user may select a location name (e.g., “work”, “home”) atstate 52 using one of the above-mentioned input devices and select aconfiguration check box presented on, e.g., the monitor 20. If the boxis checked the logic may proceed to block 56 to launch a user interfaceon the monitor 20, wherein the user is permitted to select a prestoredconfiguration at state 58. The user interface may be closed at state 60.At state 62, which may also be reached as the result of a negative testat decision diamond 54, the user may be permitted to change settings onassociated functions of the configuration selected at state 58, and thenimmediately or sometime later the user may be prompted to respond as towhether the user wishes the associated function to be added to thelocation. If not, the logic ends at state 66, but if so the logic movesto decision diamond 68 to determine whether the above-discussedconfiguration box was checked. If it was, at state 70 the logic adds theassociated function to the location (which may be kept as a file ofsettings and tasks establishing the configuration for that location) andthen loops back to state 56. If the box was not checked, the logic movesto state 72 to add the associated function to the location file and end.

Thus, the above-described configuration application knows what it canaffect/apply. A user can make a change to one of the above, and theapplication may suggest to save to current location. This suggestion canoccur the first time a user has modified the setting at a location forwhich the setting has not been specifically set. If the user hasselected “later”, or has previously set that default, the applicationcan wait until the (nth) time the user makes the same change to promptagain.

In some non-limiting embodiments the location information is determinedbased on a fuzzy algorithm, with network connections potentiallycarrying more weight than device connections. The overall weighted matchmust be within, e.g., 80% of the default location identificationinformation in order to load the location. If the match is not withinthe tolerance, the best current location is suggested to the user. Theuser can then either accept the location, make a new location, or ignorethis location.

When GPS is used for determining the location of the computer 12, it maybe determined how wide a range is included in the current location. Thiscan be determined by starting from a base assumption of area, forexample, within one hundred meters of the GPS coordinates of a previousconnections—and expanding as new GPS coordinates are determined, eachwithin one hundred meters of at least one known location point, with ahigher likelihood of being the same location if the coordinates arewithin one hundred meters of two or more previously known GPS points forthe current location.

When a network location is used in the above logic, the primarydeterminer of location can be the service set identifier (SSID) of thenetwork that the computer is connected to, if wireless. Or, the primarydeterminer of location can be the media access code (MAC) address andother information pertaining to wireless access points that the portablecomputer can detect.

Additionally, the identifications of nearby printers, wirelessprojectors, attached peripherals (such as a camera, Bluetooth speakers,dock, or other I/O devices) can be used to help distinguish betweenvarious locations on the same network. The user computer may have thesame SSID when it is located at the user's desk and in a conferenceroom, but in the conference room there might be a wireless projector,which fact can be used to distinguish between a “desk” location (andassociated configuration) and a “conference room” location (andassociated configuration).

Further, the user's behavior may be different on the computer when in aconference room instead of at their desk. Since the primary locationindicator (network SSID) is the same in both locations, but thesecondary location indicators (no dock, wireless projector present) aredifferent, different behaviors for the different locations can belearned as explained further below in reference to FIG. 4.

As non-limiting examples, the logic may note that, while the computer 12is at the “desk” location, the user always does the following: networkconnection to SSID: “WORK”; system docked with attached USB hard drive,Bluetooth headset detected; computer 12 is running on AC power.Additionally, it may be detected that when at the “desk” location theuser typically executes the following tasks: opens a web browser to thesame web page, launches an email application, prints to an officeprinter, and enables a “sametime” feature.

Continuing the above example, it may be noted that, while the computer12 is located in a location named “meeting room”, the user does thefollowing when in a meeting room: network connection is set to SSID:“WORK”; a wireless projector is detected in the room (can be sensed);the computer 12 is running on its battery. It may further be noticedthat the user while in the “meeting room” typically launches a slideapplication and email application and disables a “sametime” feature.

When the user is at “home” the logic may record that the networkconnection is set to SSID: “Home”; the computer 12 runs on AC power; anda Bluetooth printer is detected nearby. It may be further noted that theuser at “home” typically opens a web browser to a particular page,launches a virtual private network VPN application, prints to a printernamed “HomePrinter”, launches an instant messenger application, andlaunches a Skype application.

By noting behaviors as above and correlating them to the location theuser names in FIG. 3, the logic can over time establish settings andtasks to mirror the noted behaviors, and then automatically, uponsensing a particular location, autonomically establish a location-basedconfiguration based thereon.

The third case (“home”) is fairly easy to distinguish from the first twooffice-centric locations, since the network SSID is different. Todistinguish among the first two cases, the information not only of theSSID, but also of the nearby and attached peripherals can be stored inrespective “meeting room” and “desk” files, thereby noting that the desklocation is different than the meeting room location. A weighting can begiven to the likelihood of a location being the same as a previouslocation based on primarily the SSID, and secondarily on how many of theother indicators were the same. The first time the computer 12 isdetected to be in a new location with the same SSID as a known location,it can be treated as if the computer were in the same location as theknown SSID location with the most matching secondary indicators(possibly none). If the user makes corrections (i.e. closing anapplication that was started for them), the location might then bedesignated as being a different location, and user behavior informationcan then be gathered for that new location.

Non-limiting parameters in accordance with discussion above can be:

Network: SSID for wireless networks, assigned IP address range (from adomain name service) for wired networks.

Attached peripherals: external hard drives, AC power, external keyboard,external mouse, external speakers, attached monitor, USB camera.

Nearby Wireless Devices: Bluetooth Headset, Wireless Printer, WirelessProjector, other computers, UWB (Ultra Wideband) Docks, WirelessMonitors, Cell Phones.

Sensor Information: Ambient Light, Ambient Noise, Camera Pictures,sustained motion information from the accelerometer (this can be usefulif on a subway or train), Time of Day (this is useful in ‘home office’situations, where the user may be performing work functions during theday and home functions in the evening), which user is logged in

A list of possible settings and tasks that can be noted to establish alocation file and subsequently form part of an autonomically establishedconfiguration for the computer 12 include launching web browser, openinga specific web page, launching an email client launching instantmessenger clients, launching VPN client, launching word processingapplication, opening a specific document, launching other applications.Also, among the “settings” that can be use to determine location andthen later form part of a location-specific configuration includeswitching default web browser (the logic can determine, e.g., that theuser always uses Internet Explorer at work, and Firefox at home),switching default printers (the logic can determine, e.g., that the useralways prints to “HomePrinter” at home, and “WorkPrinter” at work),switching application associations (the logic can determine that theuser always plays media files with Windows Media Player at work, andiTunes at home), setting desktop resolution, setting autoplay for DVDs,establishing power management settings. Additional configuration optionsthat can be set per location include active network ports, programs thatare allowed network access, personal area network profiles such as butnot limited to Bluetooth profiles (i.e. disallowing network sharing incertain locations), Bluetooth visibility, blacklisted Bluetooth devices(either by general device type or specific device), displayconfiguration, power management, desktop icons, privacy filters.

FIG. 4 illustrates non-limiting details of the above principles of thepresent logic. If a change is made to the computer 12 it can bedetermined at decision diamond 74 whether it is a task-based change. Ifnot, it can be determined at decision diamond 76 whether the change is asettings-based change, and if not the logic ends at state 78.

If the change is task-based, the logic can move from decision diamond 74to decision diamond 80 to determine whether the change occurred within apredetermined time period of detecting the current location. If not, thechange may be ignored at state 82, but otherwise the logic can flow todecision diamond 84 to determine if the change has been performed atleast a threshold number of times. If not, the logic can ignore thechange at state 86, but otherwise the logic can flow to decision diamond88 to determine whether the user has previously indicated a desire to beprompted prior to making any changes to the configuration associatedwith that location. If not, the change is implemented in (becomes partof) the configuration file for that location at state 90; otherwise, theuser is prompted at state 92 whether to implement the change in theconfiguration file.

If it is decided at decision diamond 76 that the change is asettings-based change, the logic may flow to decision diamond 94 todetermine whether the change has been performed at least a thresholdnumber of times. If not, the logic can ignore the change at state 96,but otherwise the logic can flow to decision diamond 98 to determinewhether the user has previously indicated a desire to be prompted priorto making any changes to the configuration associated with thatlocation. If not, the change is implemented in (becomes part of) theconfiguration file for that location at state 100; otherwise, the useris prompted at state 102 whether to implement the change in theconfiguration file.

Accordingly, assume a user of the computer 12 launches a program withina certain time period of connecting to a location. A previously runningprogram accesses the network in a new location, and an “increaseproductivity” prompt on location connect to launch “advanced settings”wizard may be made but only if no advanced settings have beenconfigured. After the default printer has been changed, the user can beprompted to associate the new default printer to the current location.The associations can be undone if the user immediately cancels/closesthe resource or interrupts the action.

Thus, if an event occurs Y % of location connections, minimum N times,the resource can be added to the location. If the user cancels theresource within X minutes of the next time when it is applied, it isremoved from the location association. The cancellation can be weightedand added back into percentage. If desired, automatic cancellations cancount more toward the percent of launch than when a user does not launchthe resource.

Consider the following example, where the learning threshold is set to 5repeated resource actions, and 80% of the connection attempts:

-   N=number of times event has occurred at a specific location.-   Y=N divided by total number of times user has been at that location

If (N≧ 5) and (Y≧0.8){ add_resource } if(user_canceled){ remove_resourceN=N/2 }

This will reset the N value so that the resource is not added back inthe next time it is launched at that location. This algorithm can alsobe generalized to relate any user tasks. For example, associating thatNotes is always started after AT&T dialer is run. This extension ispossible with a dynamically built relational database based on useractions and behavior.

While the particular Autonomic COMPUTER CONFIGURATION BASED ON LOCATIONis herein shown and described in detail, it is to be understood that thesubject matter which is encompassed by the present invention is limitedonly by the claims.

What is claimed is:
 1. A method comprising: determining a location of afirst device based at least in part on execution of fuzzy logic toidentify a match to the location based on a weighting of connectionparameters and based on a determination that the weighting is within apredefined tolerance; and establishing at least a first configurationfor the first device based on the location.
 2. The method of claim 1,comprising: receiving user input to the first device while the firstdevice is at the location, the user input being to change configurationof the first device from the first configuration to a secondconfiguration different from the first configuration; in response toreceiving the user input and upon subsequently determining that thefirst device is at the location, establishing the second configurationfir the first device; and in response to receiving the user input withina threshold time of determining that the first device is at the locationand upon subsequently determining that the first device is at thelocation, establishing the second configuration for the first device. 3.The method of claim 1, comprising determining the location based atleast in part on data from a sound sensor.
 4. The method of claim 1,comprising: in response to a determination that the weighting is notwithin the predefined tolerance, suggesting a best current location ofthe first device to a user.
 5. Apparatus, comprising: a processor;storage accessible to the processor and bearing instructions executableby the processor to: identify a location at which the apparatus isdisposed based at least in part on execution of logic to identify thelocation based on a weighting of connection parameters and based on adetermination that the weighting is within a predefined tolerance forthe location; and based on the identification of the location,automatically establish at least a first configuration for theapparatus.
 6. The apparatus of claim 5, wherein the instructions areexecutable by the processor to: receive user input while the apparatusis at the location, the user input being to change configuration of theapparatus from the first configuration to a second configurationdifferent from the first configuration; and in response to receipt ofthe user input, automatically establish the second configuration in thefuture based on identification of the location.
 7. The apparatus ofclaim 6, wherein the instructions are executable by the processor to:receive the user input while the apparatus is at the location within athreshold time of identification of the location; and in response toreceipt of the user input within the threshold time, automaticallyestablish the second configuration in the future based on identificationof the location.
 8. The apparatus of claim 5, wherein the instructionsare executable by the processor to identify the location at least inpart based on identification of at least one peripheral deviceaccessible to the apparatus, and wherein the at least one peripheraldevice comprises at least a first peripheral device which communicateswith the apparatus using Bluetooth communication.
 9. The apparatus ofclaim 5, wherein the instructions are executable by the processor toidentify the location at least in part based on identification of atleast one peripheral device accessible to the apparatus, and wherein theat least one peripheral device comprises at least an alternating current(AC) power supply.
 10. The apparatus of claim 5, comprising a soundsensor, and wherein the instructions are executable by the processor to:identity the location at least in part based on data from the soundsensor.
 11. The apparatus of claim 5, comprising a display accessible tothe processor, wherein the identification is a first identification, andwherein the instructions are executable by the processor to: present auser interface (UI) on the display in response to a secondidentification of the location executed before the first identification,the UI presenting a prompt to provide input for whether to establish thelocation as a location for which at least one configuration of theapparatus is to be automatically established.
 12. The apparatus of claim5, comprising a display accessible to the processor, wherein theidentification is a first identification, and wherein the instructionsare executable by the processor to: present a user interface (UI) on thedisplay in response to a second identification of the location executedbefore the first identification, the UI presenting a prompt to select atleast one configuration of the apparatus to be automatically establishedbased on the location.
 13. The apparatus of claim 5, wherein theinstructions are executable by the processor to: in response to adetermination that the weighting is not within the predefined tolerance,suggest a best current location of the apparatus to a user.
 14. Acomputer readable storage medium which is not a transitory signal, thecomputer readable storage medium comprising instructions executable by aprocessor to: identify a location at which a first device is disposedbased at least in part on execution of fuzzy logic to identify thelocation base on a weighting of connection parameters and based on adetermination that the weighting is within a predefined tolerance forthe location; and based on the location, automatically establish atleast a first setting of the first device.
 15. The computer readablestorage medium of claim 14, wherein the instructions are executable bythe processor to: receive user input while the first device is at thelocation, the user input being to change settings for the first devicefrom the first setting to a second setting different from the firstsetting; in response to receipt of the user input, automaticallyestablish the second setting in the future based on the location;receive the user input while the first device is at the location withina threshold time of identification of the location; and in response toreceipt of the user input within the threshold time, automaticallyestablish the second setting in the future based on the location. 16.The computer readable storage medium of claim 14, wherein theinstructions are executable by the processor to identify the location atleast in part based on identification of at least one peripheral devicecommunicating with the first device, and wherein the at least oneperipheral device comprises at least one of the group consisting of: amonitor, a keyboard, a mouse, a projector, at least one speaker, and acomputer dock.
 17. The computer readable storage medium of claim 14,wherein the instructions are executable by the processor to: identifythe location at least in part based on data from a sound sensoraccessible to the processor.
 18. The computer readable storage medium ofclaim 14, wherein the instructions are executable by the processor to:based on the location, automatically establish at least the firstsetting of the first device at least in part by connecting to at leastthe second device but declining to connect to a third device that doesnot store encrypted data.
 19. The computer readable storage medium ofclaim 14, wherein the instructions are executable by the processor to:based on the location, automatically establish at least the firstsetting of the first device at least in part by connecting only todevices that store encrypted data.
 20. The computer readable storagemedium of claim 14, wherein the instructions are executable by theprocessor to: in response to a determination that the weighting is notwithin the predefined tolerance, suggest a best current location of thefirst device to a user.